﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using liclSolcred.Views;
using com.creditos.be.liclSolcred;
using com.creditos.util.liclUtil;
using com.creditos.be.liclUtil;


public partial class solcred_FormsManAprobar : CreditosPaseBase, IFormsPendienteAprobacionView
{
    private FormsPendienteAprobacionPresenter oPresenter = new FormsPendienteAprobacionPresenter();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            oPresenter.View = this;
            Master.TituloModulo = "Aprobar Solicitud Crédito";
            oPresenter.ListarProductos(new ProductoBE());
            oPresenter.ListarParametros(41);
            ApruebaBE oAprueba = new ApruebaBE();
            oAprueba.NumeroSolicitud = decimal.Parse(Request.QueryString["NroSol"]);
            oPresenter.ObtenerListaResultadoReglas(oAprueba);
            InsertarSeleccione();
            UCBarraHerramientas1.btnAprueba.Visible = true;
            UCBarraHerramientas1.btnCancelar.Visible = true;
            CargarDatos();
        }
        oPresenter.View = this;
    }

    protected override void DefineHandlers()
    {
        ddlProducto.SelectedIndexChanged += new EventHandler(ddlProducto_SelectedIndexChanged);
        UCBarraHerramientas1.btnAprueba.Click += new EventHandler(btnAprueba_Click);
        btnCalcularTasa.Click += new EventHandler(btnCalcularTasa_Click);
        UCBarraHerramientas1.btnCancelar.Click += new EventHandler(btnCancelar_Click);
        UCBarraHerramientas1.btnAprueba.Attributes.Add("onClick", "if(!procesandoConfirma('" + Resources.Creditos.MSG_CONFIRMACION_APRUEBA + "'))return false;");     
    }


    void ddlProducto_SelectedIndexChanged(object sender, EventArgs e)
    {
        ProductoBE oProducto = new ProductoBE();
        oProducto.CodigoProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProducto.SelectedValue));
        oPresenter.ListarSubProductos(oProducto);

    }

    public void CargarDatos() {

        txtCreditoSolMonto.Text = SolicitudBETemp.ImporteCredito.ToString();
        txtCreditoSolPlazo.Text = SolicitudBETemp.Plazo.ToString();
        txtCreditoSolTasa.Text = SolicitudBETemp.ImporteTasa.ToString();
        txtValorCuota.Text = SolicitudBETemp.ImporteCuota.ToString();
        
        txtRCI.Text = SolicitudBETemp.RCI.ToString();
        txtRMA1.Text = SolicitudBETemp.RMA.ToString();
        txtRMA1.Text = SolicitudBETemp.RMA.ToString();
        txtCapacidadEndeudamiento.Text = SolicitudBETemp.CapacidadCredito.ToString();
        txtCreditoSugerido.Text = SolicitudBETemp.CreditoSugerido.ToString();
        ddlCreditoSolMoneda.SelectedValue = SolicitudBETemp.MonedaCredito.ToString();
        ddlProducto.SelectedValue = SolicitudBETemp.CodigoProducto.ToString();
        ProductoBE oProducto = new ProductoBE();
        oProducto.CodigoProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProducto.SelectedValue));
        oPresenter.ListarSubProductos(oProducto);
        ddlSubProducto.SelectedValue = SolicitudBETemp.CodigoSubProducto.ToString();
    }

    public void InsertarSeleccione()
    {
        List<Control> lstControles = new List<Control>();
        lstControles = Utilitario.ListarControles(Page, 2);
        foreach (Control item in lstControles)
        {
            UIBindable.InsertarSeleccionar((DropDownList)item);
        }
    }

    void btnAprueba_Click(object sender, EventArgs e)
    {
        ApruebaBE oAprueba = new ApruebaBE();

        Decimal importeCredito = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtImporteCreditoAprobar.Text,2));
        if (importeCredito > Decimal.Parse(Utilitario.DarFormatoDecimalCero(txtCapacidadEndeudamiento.Text,2)))
        {
            MostrarMensajeError("Importe debe ser menor a capacidad de credito..");
        }
        else{
        oAprueba.NumeroSolicitud = decimal.Parse(Request.QueryString["NroSol"]);
        oAprueba.Moneda = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMonedaAprobar.SelectedValue));
        oAprueba.ImporteCredito = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtImporteCreditoAprobar.Text,2));
        oAprueba.Plazo = int.Parse(Utilitario.DarFormatoEnteroCero(txtPlazoCuotaAprobar.Text));
        oAprueba.Tasa= decimal.Parse(Utilitario.DarFormatoDecimalCero(txtTasaAprobar.Text,2));
        oAprueba.ValorCuota = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtValorCuotaAprobar.Text,2));
        oAprueba.Observacion = txtComentariosCreditos.Text;
        oPresenter.AprobarSolicitudCredito(oAprueba);
        MostrarMensajeError("Se ha realizado la aprobación satisfactoriamente");
        }
    }

    void btnCancelar_Click(object sender, EventArgs e)
    {
        string url = "FormsManSolicitud.aspx?NroSol=" + Request.QueryString["NroSol"];
        string script = "window.location = '" + url + "';";
        ScriptManager.RegisterStartupScript(this, typeof(Page), "RedirectTo", script, true);        
    }

    void btnCalcularTasa_Click(object sender, EventArgs e)
    {

        SolicitudBE oSolicitud = new SolicitudBE();

        oSolicitud.CodigoProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlProducto.SelectedValue.ToString()));
        oSolicitud.CodigoSubProducto = int.Parse(Utilitario.DarFormatoEnteroCero(ddlSubProducto.SelectedValue.ToString()));
        oSolicitud.MonedaCredito = int.Parse(Utilitario.DarFormatoEnteroCero(ddlMonedaAprobar.SelectedValue.ToString()));
        oSolicitud.ImporteCredito = decimal.Parse(Utilitario.DarFormatoDecimalCero(txtImporteCreditoAprobar.Text.Trim(), 2));
        oSolicitud.Plazo = int.Parse(Utilitario.DarFormatoEnteroCero(txtPlazoCuotaAprobar.Text.Trim()));        
        oSolicitud.CodigoConvenio = SolicitudBETemp.CodigoConvenio;
        oSolicitud.SeguroDesempleo = SolicitudBETemp.SeguroDesempleo;
        oSolicitud.CodigoDesgravamen = SolicitudBETemp.CodigoDesgravamen;
        oSolicitud.FinanciaGAT = SolicitudBETemp.FinanciaGAT;

        oPresenter.CalcularTasa(oSolicitud);


    }

    public SolicitudBE SolicitudBETemp
    {
        get { return (SolicitudBE)Session["Solicitud"]; }
        set { Session["Solicitud"] = value; }
    }

    #region IFormsPendienteAprobacionView Members

    public void CargarProductos(List<ProductoBE> lstProductos)
    {
        UIBindable.Bind(ddlProducto, lstProductos, "CodigoProducto", "DescripcionProducto");
    }

    public void CargarParametros(List<ParametroBE> lstParametro)
    {
        if (lstParametro.Count > 0) {

            UIBindable.Bind(ddlCreditoSolMoneda, lstParametro);
            UIBindable.Bind(ddlMonedaAprobar, lstParametro);

        }
    }

    public void MostrarMensajeError(string p)
    {
        Master.MostrarMensaje(p, 0);
    }

    public void CargarListaSolicitudesXAprobar(List<ApruebaBE> lst)
    {
        throw new NotImplementedException();
    }

    public void CargarSubProductos(List<SubProductoBE> lstSubProductos)
    {
        UIBindable.Bind(ddlSubProducto, lstSubProductos, "CodigoSubProducto", "DescripcionSubProducto");
        UIBindable.InsertarSeleccionar(ddlSubProducto);
    }

    public void CargarListaResultadoReglas(List<ApruebaBE> lst)
    {
        UIBindable.Bind(gvwListaReglas, lst);
    }

    public void CargarCaluloTasa(Tasa tasa)
    {
        txtTasaAprobar.Text = tasa.TasaInteres.ToString();
        txtValorCuotaAprobar.Text = tasa.ValorCuota.ToString();
    }

    #endregion
}
